Apparatus and method for detection and quantification of oscillatory signals

ABSTRACT

A method of determining the location in time of maxima and/or minima of an oscillatory signal. The method may have application to measurement of biological signals, in particular measurement of heart rate from a pulsatile blood signal. The method includes a first stage including the steps of observation over a measurement period, identifying large local maxima or minima and computing an average interval between the identified local maxima or minima. One or more exclusion periods are located in time in the oscillatory signal, having a duration dependent on the average interval, the exclusion periods used to reject false maxima or minima. Maxima or minima may also be detected as an absolute maximum or minimum between crossing points of a fast and a slow moving average of the oscillatory signal. An exclusion period may also be used to reject false maxima or minima when crossing points are used. Apparatus for performing the method is also claimed.

TECHNICAL FIELD

[0001] This invention relates to a method and apparatus for detection and quantification of oscillatory signals.

[0002] In particular, but not exclusively, this invention relates to a method and apparatus for detection and quantification of oscillatory biological signals, with application to the detection of blood pressure and identification of periodic maxima or minima of the blood pressure waveform. Once the periodic maxima or minima have been identified, characteristics of the blood pressure waveform including the frequency, may be identified.

BACKGROUND TO THE INVENTION

[0003] Many signals have oscillatory characteristics, ranging from a simple sine wave to noisy signals which may vary greatly in frequency and amplitude over time. Biological signals often display oscillatory characteristics and are generally prone to noise, either inherent in the signal and/or in the measuring apparatus and some are also liable to large and rapid regular or irregular fluctuations in their frequency and amplitude.

[0004] Thus, measurement of signals like biological signals often gives rise to false positive or negative detection of the measured characteristic when traditional methods of detection based on constant thresholds are used. Such false detection's lead to inaccuracies in the measurement of the characteristics of the signal.

[0005] One area where inaccuracies in the measurement of the signal may be particularly onerous is in the detection of heart beats. Heart beats are typically monitored in hospitals or the like where it is necessary to monitor the functions of the heart for diagnosis purposes or to give an indication when a patient requires medical attention. However, heart rate is also often monitored to assist in the evaluation of the performance of athletes, to monitor stress levels of individuals in certain situations and have been used to give an indication of whether someone is being untruthful. However, the most critical detection process is usually monitoring a patient in a care situation.

[0006] Heart beats may be detected by monitoring the pulsatile blood pressure signal. However, the blood pressure signal reflects the fact that rapid changes in heart rate can occur within a single beat, which can give rise to false positive or false negative detection of a heart beat. For example, in the case of pulse arrhythmia, there is varying (often regularly) beat-to-beat interval and amplitude, which need not be rejected during the detection. In addition, depending on the measurement site, the pulse wave often contains significant amounts of wave reflection, which must be accommodated for in order to accurately detect each heart beat and not to be mistaken for the irregular variations of frequency and amplitude during arrhythmia.

[0007] Problems similar to distinguishing between variations of the blood pressure signal over time due to arrhythmia, reflections and changes in amplitude, frequency and baseline are often present in biological signals and in other oscillatory signals which exhibit highly variable and or noisy characteristics. These variations cause significant difficulties in accurately measuring the characteristics of the signal such as frequency and amplitude.

OBJECT OF THE INVENTION

[0008] Thus, it is an object of this invention to provide a method and apparatus for detection and quantification of variable oscillatory signals which has increased accuracy or one which overcomes or alleviates problems in methods and apparatus for detection at present or at least one which provides the public with a useful alternative.

[0009] Further objects of the present invention may become apparent from the following description, given by way of example only and with reference to the accompanying drawings.

SUMMARY OF THE INVENTION

[0010] According to a first aspect of the invention, there is provided a method of determining the location in time of maxima and/or minima of an oscillatory signal, the method including the steps of:

[0011] i) observing the amplitude of the oscillatory signal over a predefined measurement period and identifying local maxima or minima that have a preselected measure indicative of the size of the maxima or minima, which exceeds a certain threshold;

[0012] ii) computing an average interval between local maxima or minima identified in step i);

[0013] iii) computing the duration of one or more exclusion periods dependent on said average interval;

[0014] iv) determining a location in time of the one or more exclusion periods based on the observed signal;

[0015] v) detecting local maxima or minima in the observed signal and rejecting a maximum or minimum if a maximum or minimum is located in time within an exclusion period.

[0016] Preferably, the certain threshold is calculated as a predetermined proportion of said preselected measure of the local maximum or minimum that has the greatest size according to said preselected measure.

[0017] Preferably, the preselected measure indicative of the size of the maxima or minima may be either the amplitude of the maxima or minima, or the magnitude of the fall or rise to an adjacent minimum or maximum respectively.

[0018] Preferably, the duration of the one or more exclusion periods may be a predetermined percentage or proportion of said average interval.

[0019] Preferably, the location in time of an exclusion period may be dependent on the location in time of a crossing point between two moving averages having different averaging intervals.

[0020] Preferably, the location in time of an exclusion period may be dependent on the location in time of a previously calculated maximum or minimum.

[0021] Preferably, the averaging interval of each moving average may be updated dependent on said average interval.

[0022] According to a second aspect of the invention, there is provided a method of determining the location in time of periodic maxima and/or minima of an oscillatory signal, the method including the steps of:

[0023] a) observing the oscillatory signal by detecting the amplitude of the oscillatory signal;

[0024] b) computing a first and a second moving average of the oscillatory signal, the first moving average having a first averaging time interval and the second moving average having a second averaging time interval. longer than the first averaging time interval;

[0025] c) determining the location in time of a plurality of crossing points, wherein a crossing point is a point of intersection between the first and second moving averages;

[0026] d) defining at least one measurement period as the interval between two crossing points; and

[0027] e) determining the location in time of an absolute maximum or minimum of the oscillatory signal within the or each measurement period, thereby determining the location in time of each periodic maxima or minima respectively of the oscillatory signal.

[0028] Preferably, a crossing point is defined as a first type if the first moving average was less than the second moving average prior to the crossing point and defined as a second type if the first moving average was greater than the second moving average prior to the crossing point and wherein the measurement period may be defined as the interval between two consecutive crossing points of the same type.

[0029] Preferably, a crossing point is defined as a first type if the first moving average was less than the second moving average prior to the crossing point and defined as a second type if the first moving average was greater than the second moving average prior to the crossing point and wherein the measurement period may be defined as the interval between two consecutive crossing points of a different type.

[0030] Preferably, the method may further include the steps of:

[0031] f) defining an exclusion period located in time relative to at least one of each crossing point defining each measurement period;

[0032] g) evaluating whether a crossing point defining a first measurement period falls within an exclusion period corresponding to a crossing point defining a second measur ment period; and

[0033] h) if the crossing point defining the first measur ment period falls within the exclusion period corresponding to the crossing point defining the second measurement period, evaluating whether that crossing point or the crossing point corresponding to the exclusion period within which it is located in time satisfies a first predetermined set of criteria and rejecting the crossing point for the purposes of defining a measurement period if said criteria are met.

[0034] Preferably, if a crossing point is rejected, the method may further include also rejecting the exclusion period associated with the rejected crossing point.

[0035] Preferably, the method may further include the steps of:

[0036] i) detecting the location in time of a plurality of local maxima or minima within the oscillatory signal that exceed a predetermined amplitude threshold; and

[0037] j) computing the length of the exclusion period in time dependent on an average value of the separation in time of detected maxima or minima that exceed said predetermined amplitude threshold.

[0038] Preferably, the method may further include rejecting a local maximum detected in step i) for the purposes of step j) if the local maximum falls within a predetermined time period of a local maximum having a greater value.

[0039] Preferably, the method may further include rejecting a local minimum detected in step i) for the purposes of step j) if the local minimum falls within a predetermined time period of a local minimum having a lesser value.

[0040] Preferably, the average value of the separation in time of detected maxima or minima may be a median value.

[0041] Preferably, the method may further include band-pass filtering the observed signal prior to performing step i).

[0042] Preferably, the predetermined amplitude threshold may be computed using the equation: Thr=(Max_(F)−Avg_(F))·ƒ₁+Avg_(F), if maxima is determined in step e) and using the equation Thr=(Min_(F)−Avg_(F))·ƒ₁+Avg_(F), if minima is determined in step e), wherein Thr is the predetermined threshold, Avg_(F) is an average of the observed signal, Max_(F) is the maximum of the observed signal, Min_(F) is the minimum of the observed signal, and f₁, is a preset fraction dependent on the characteristics of the signal and wherein Avg_(F), Max_(F), and Min_(F) are determined from a sample of the observed signal.

[0043] Preferably, step f) may include locating the exclusion period immediately adjacent to the crossing point, after the crossing point.

[0044] Preferably, the method may further include comparing an average value of the observed signal over a sample period with the maximum and minimum values over the same sample period and inverting the signal if required so that the maximum or minimum determined in step e) has a greater variation from the average than the minimum or maximum respectively.

[0045] Preferably, the reflected or inverted signal may be computed as double an average of the observed signal less the value of the observed signal.

[0046] Preferably, the method may further include defining an exclusion period located in time relative to a detected maximum or minimum within each measurement period and evaluating whether a detected maximum or minimum of a first measurement period falls within an exclusion period corresponding to a maximum or minimum of a second measurement period and if the maximum or minimum of the first measurement period falls within the exclusion period of the second measurement period, evaluating whether the crossing point corresponding t the maximum or minimum of the first measurement period or the crossing point corresponding to the exclusion period within which the maximum or minimum of the first measurement period falls satisfies a predetermined set of criteria and rejecting a crossing point for the purposes of defining a measurement period if said criteria are met.

[0047] Preferably, the set of predetermined criteria may be based on the relative magnitude of a maximum or minimum in an exclusion period to the magnitude of at least one maximum or minimum respectively in the observed signal.

[0048] Preferably, a crossing point may be rejected if the amplitude of a maximum within the measurement period defined by that crossing point is less than an adjacent maximum or less than a predetermined percentage of an adjacent maximum.

[0049] Preferably, a crossing point may rejected if the amplitude of the corresponding minimum to the crossing point located within the exclusion period is greater than an adjacent minimum or greater than a percentage of an adjacent minimum.

[0050] Preferably, a crossing point may be rejected only if it is within an exclusion period corresponding to another crossing point and the maximum or minimum corresponding to the crossing point is within an exclusion period corresponding to another maximum or minimum.

[0051] Preferably, the method may further include the step of recording the maximum or minimum value of the oscillatory signal in each measurement period.

[0052] Preferably, the step of identifying local maxima or minima that have a preselected measure indicative of the size of the maxima or minima may include determining whether the left or right side of one or more selected maxima or minima has a larger fall or rise respectively and memorising which side has the greater fall and rise and the magnitude of the largest fall or rise within a sample of the oscillatory signal and rejecting maxima or minima if the fall or rise respectively is less than a predetermined proportion of the magnitude of the largest fall or rise.

[0053] Preferably, the method may be used to detect maxima or minima of a signal representative of pulsatile blood pressure in an animal.

[0054] Preferably, the method may be used to determine a measure of the heart rate from detected maxima or minima of the signal representative of pulsatile blood pressure.

[0055] According to a third aspect of the invention, there is provided apparatus for determining the location in time of maxima and/or minima of an oscillatory waveform including sensing means to sense an oscillatory waveform and generate an oscillatory signal representative of an oscillatory waveform and a computer processing means in communication with the sensing means and having an instruction set to cause said computer processing means to perform the method as defined in any one of the preceding paragraphs.

[0056] According to a fourth aspect of the present invention, there is provided apparatus for determining the location in time of maxima and/or minima of an oscillatory waveform, the apparatus including sensing means to sense an oscillatory waveform and generate an oscillatory signal representative of an oscillatory waveform and a computer processing means in communication with the sensing means and having an instruction set to cause said computer processing means to:

[0057] i) identify local maxima or minima that have a pr selected measure indicative of the size of the maxima or minima, which exceeds a certain threshold;

[0058] ii) compute an average interval between local maxima or minima identified in step i);

[0059] iii) compute the duration of one or more exclusion periods dependent on said average interval;

[0060] iv) compute a location in time of the one or more exclusion periods based on the observed signal;

[0061] v) identify local maxima or minima in the observed signal and record identified maxima or minima except any maximum or minimum that is located in time within an exclusion period.

[0062] According to a fifth aspect of the invention, there is provided apparatus for determining the location in time of maxima and/or minima of an oscillatory waveform, the apparatus including sensing means to sense an oscillatory waveform and generate an oscillatory signal representative of an oscillatory waveform and a computer processing means in communication with the sensing means and having an instruction set to cause said computer processing means to:

[0063] a) compute a first and a second moving average of the oscillatory signal, the first moving average having a first averaging time interval and the second moving average having a second averaging time interval longer than the first averaging time interval;

[0064] b) compute the location in time of a plurality of crossing points, wherein a crossing point is a point of intersection between the first and second moving averages;

[0065] c) define at least one measurement period as the interval between two crossing points; and

[0066] d) compute the location in time of an absolute maximum or minimum of the oscillatory signal within the or each measurement period, thereby determining the location in time of each periodic maxima or minima respectively of the oscillatory signal.

[0067] According to a sixth aspect of the invention, there is provided a method of determining the frequency or wavelength of an oscillatory signal including determining the location in time of maxima and/or minima of the oscillatory signal by the method according to any one of claims 1 to 30, calculating the difference in time between maxima and/or minima and using said difference in time to calculate the frequency and/or wavelength of the signal.

[0068] Preferably, the method may be performed in real-time.

[0069] According to a seventh aspect of the invention, there is provided a method of detecting maxima and/or minima in an oscillatory signal substantially as herein described and with reference to FIGS. 1 to 12 or FIGS. 13 to 31.

[0070] According to an eighth aspect of the invention, there is provided apparatus for detecting maxima and/or minima in an oscillatory signal substantially as herein described and with reference to FIGS. 1 to 12 or FIGS. 13 to 31.

[0071] Further aspects of the present invention may become apparent from the following description given by way of example only and in reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0072]FIG. 1: shows a flow diagram of a method of signal detection and evaluation according to one embodiment of the present invention.

[0073]FIG. 2: shows a graph of an example of an arterial blood pressure waveform of a rabbit plotted against time and the same waveform after being high-pass filtered.

[0074]FIG. 3: shows a graph of an example of an original signal, a filtered signal and a mirror reflection of the filtered signal.

[0075]FIG. 4: shows a graph of an example of an original signal, a filtered signal and an example of a threshold for preliminary maxima detection.

[0076]FIG. 5: shows a flow diagram of the preliminary assessment process of the intervals between successive maxima according to one aspect of the invention.

[0077] FIGS. 6 to 10: show plotted examples of the results of the preliminary detection process of the maxima of an oscillatory signal.

[0078]FIG. 11: shows a graph of an example of an oscillatory signal, a slow and fast moving average of the oscillatory signal and the periodic onset of an exclusion period.

[0079]FIG. 12: shows a flow diagram of the process of final assessment of the intervals between successive maxima according to one aspect of the invention.

[0080]FIG. 13: shows a flow diagram of a method of signal detection and evaluation according to a second embodiment of the present invention.

[0081]FIG. 14: shows a plot of an original and a filtered signal evaluated against a threshold.

[0082]FIG. 15: shows a graphical example of the determination of the larger fall side of a maximum.

[0083]FIG. 16: shows a graphical example of the selection process for maxima which exceed a threshold.

[0084]FIG. 17: shows a graphical example of the determination of local adjacent maxima.

[0085]FIG. 18: shows a more detailed graphical example of the determination of local adjacent maxima.

[0086] FIGS. 19A-D: shows a graphical example of the analysis of a filtered signal to compute a refractory period.

[0087]FIG. 20: shows examples of possible pulsatile waveforms.

[0088] FIGS. 21-23: show graphical examples of the analysis of a filtered signal including large notches.

[0089]FIG. 24: shows a graphical example of the analysis of a filtered signal including unusually large intervals.

[0090]FIG. 25: shows a graphical example of the analysis of a filtered signal including a progressive decrease in frequency.

[0091]FIG. 26: shows a graphical example of the analysis of a signal including a large change in baseline and amplitude.

[0092]FIG. 27: shows a plot of an observed signal and a fast and slow moving average.

[0093]FIG. 28: shows a flow diagram of a final peak detection process according to the present invention.

[0094]FIG. 29: shows a plot of an observed signal and a fast and slow moving average and the onset of the refractory periods for a signal which results in irregular intersections of moving averages.

[0095]FIG. 30: shows an example of another waveform which results in irregular intersections of moving averages.

[0096]FIG. 31: shows an example of a waveform with irregular maxima location within each period.

MODES FOR PERFORMING THE INVENTION

[0097] This invention provides a method and apparatus for detecting the location in time. of periodic maxima or minima of an oscillatory signal. Also, the values of the maxima or minima and other parameters including peaks and troughs of the first derivative of the signal may be determined. The method may result in improved accuracy in the detection of maxima and minima over systems using constant detection thresholds, especially under conditions of rapid changes in baseline, amplitude, or frequency.

[0098] The following description is given primarily in reference to the observation and analysis of a pulsatile blood pressure waveform. However, the present invention may find application in the analysis of any periodic signal, with particular application anticipated for noisy and potentially highly variable signals such as signals obtained from biological sources and other complex and or noisy systems.

[0099] The approach according to a first preferred embodiment of the invention involves the stages of: observing a signal, high-pass filtering, and preliminary detection and parameterisation, followed by final detection. An overview of the method is presented in FIG. 1 in flow diagram form.

[0100] The first stage includes an observation step, referenced 1 in FIG. 1 and includes observation of the pulsatile signal for further analysis. Any sensor suitable for detecting the amplitude of the waveform to be analysed over time may be used. For digital analysis, the analogue signal observed may undergo analogue-to-digital conversion to produce a data array representative of the signal. A sample of the signal is then high pass-filtered in step 2 in order to reduce or remove baseline movement. If the signal has been digitised, then a digital filter is used, or alternatively, the signal may be filtered prior to digital conversion. The size of the signal sample is substantially arbitrary, but preferably is at least a few periods of the observed signal in length. For the case of arterial blood pressure detection in rabbits, a 2 second long sample period of the signal, observed with a frequency of 500 Hz was found suitable, which was then transformed through a third order high pass Bessel filter with a low cut-off frequency of 0.5 Hz. The selected cut-off frequency is selected as the level of the lowest expected frequency of the pulsatile signal, in this case 30 beats per minute (bpm) for 0.5 Hz. This is in contrast to the normal heart rate for a rabbit of approximately 200-260 bpm and therefore no significant loss of information due to including a filter is expected.

[0101] An example of an original signal 100 and a filtered signal 200 is shown in FIG. 2. The original signal 100 is an example of a possible pulsatile blood pressure signal, indicative of heart beats. The filtered signal 200 has no dc component and therefore the progressive rise in pressure in the original signal 100 does not affect the subsequent analysis of the filtered signal.

[0102] Preliminary interval detection is the next stage of the algorithm. The preliminary detection is performed on a filtered signal, and includes the steps represented within box A of FIG. 1.

[0103] Initially the sharpest of signal extremes is selected to be used as the prime detection object due to easier detection of maxima or minima having sharper signal extremes. For the case of a blood pressure signal, this is usually the maximum of the signal (or systolic peak). The sharpest extreme is determined in step 3 by comparing the difference of the maximum and average value of a sample of the signal, to the difference of the average and minimum of the same sample. If the first difference of the maximum minus average is bigger, then the sharpest extreme is a maximum and the preliminary maxima detection stage progresses to the maxima or minima detection step 5. To make this procedure less susceptible to occasional extreme deviations, approximately 0.5% of data may be discarded from both sides of the ranked data array of the sample. Other percentage values of data to be cut from the sample may be used depending on the expected signal characteristics. Also, it will be appreciated by those skilled in the art that this function may be substantially duplicated by low pass filtering the signal to remove high frequency noise, which is likely to cause many of the extreme deviations.

[0104] If the sharpest extreme is a minimum a mirror reflect step 4 is performed to mirror reflect the signal in its average through formulae (1):

Signal_(ref1)=2·Avg _(F)−Signal_(ini)  (1)

[0105] where Signal_(ref1) and Signal_(ini) are the reflected and initial array of the signal data points respectively, Avg_(F) is the average value of the filtered signal, and the operation is a subtraction from the doubled average of each element of the initial array. If effective filtering is used, the value of Avg_(F) may be assumed to be zero.

[0106] An example of a waveform signal where the minima are sharper than the maxima is presented in FIG. 3, with the original signal represented by 101, the filtered signal by 201 and the mirror reflected signal by 301. It will be appreciated by those skilled in the art that peak detection could also detect the signal minima, rather than signal maxima, in which case the signal may be reflected if the maxima are sharper. Alternatively, detection of signal maxima or minima may be dependent on the result of step 3. However, for the purposes of clarity, the following description assumes that signal maxima are being detected both for the preliminary and final detection stages.

[0107] Referring again to FIG. 1, the next step of the preliminary detection stage is a maxima detection step 5. The absolute maximum (Max_(F)) of the filtered signal sample is calculated using any appropriate algorithm, several of which are presently widely known, and an amplitude threshold value is determined by formula 2:

Thr=(Max_(F) −Avg _(F))·ƒ ₁ +Avg _(F)  (2)

[0108] where f₁, is a predetermined fraction selected depending on the signal characteristics. A fraction of f₁, equal to 0.2 was found suitable for use In analysis of rabbit pulsatile waveforms. The value of this fraction depends on the sharpness of the extremes of the particular biological signal. The sharper the extreme the larger the s fraction which can be chosen. Although the absolute maximum has been found as a convenient measure of the largest oscillation, other measures may be used, such as the area under a trace formed by the signal, or extent of rise or fall to the next local maximum or minimum respectively.

[0109] In step 6, the separation in time of maxima that exceed the amplitude threshold is then determined, and the median interval between these maxima is calculated. This is performed in two stages.

[0110] In the first stage, the absolute maximum between successive intersections of the signal and the threshold (INTS) is determined. The portions of the signal between the start of the signal and the first INTS and between the last INTS and the end of signal are examined, and if there are local maxima above the threshold, the largest from each side may be added to the pool.

[0111] In the second stage, a validation process is performed by comparing the intervals between successive maxima, and rejecting the smaller of two maxima if the interval between them is shorter than some minimum interval (IntMin). A value for IntMin of 100 ms (amounting to 600 bpm) was found to be suitable for rabbit blood pressure waveforms. After the peaks have been validated, the intervals between them are assessed to determine the median interval (MeInt). In the case of no intervals being determined, the MeInt is set equal to the time length of the sample of the signal.

[0112] The median for preliminary assessment of an interval between peaks may be used, because it is independent of some extreme variation in interval distribution. However, other average values such as the arithmetic average may be alternatively used.

[0113] A plotted example of an implementation of steps 1 through 6 is shown in FIG. 4 and a suitable algorithm is presented in FIG. 5. Referring to FIG. 4, the signal 102 is an observed unfiltered pulsatile waveform, signal 202 is a filtered waveform and line 400 is the threshold. A mirror reflect step 4 was not required. Each in FIG. 4 represents a valid peak located between two □ signal to threshold intersections, which are represented by circles ◯. The * represents a local maximum above the threshold which occurs after the last INTS and is recorded as a valid maximum. The local maximum 500 was rejected as an INTS due to following within 100 ms of a previous INTS.

[0114] Referring to FIG. 5, which shows the calculation steps in more detail, the first step of the process is an input step 11. Data indicative of the amplitude A and location in time T of each maximum of the filtered signal above the threshold is received, a loop counter i is set to i=0 and an interval counter j is set to j=0. In step 12, the loop counter i is incremented and a data pair of a maximum A_(i) and corresponding time index T_(i), is identified. The value of i is evaluated in step 13 and if i=1, the algorithm memorises the values of A_(i) and T_(i), as A_(m) and T_(m). If there is more data, then step 15 dictates that the algorithm returns to step 12, i is incremented and the next data pair (A_(i), T_(i)) taken. This process occurs at the first iteration of the algorithm, as when only a single data pair (A_(i), T_(i)) is present, analysis of the interval between maxima is not possible.

[0115] In step 16, the interval (Int) between the current time value T_(i), and the memorised time value T_(m) is determined and in step 17 this difference is compared with the minimum set time interval, IntMin. In the case that Int>IntMin, then the maximum is deemed valid, the algorithm proceeds to step 18, the interval counter j is incremented and the value of Int is stored as Int_(j). In step 19, the current data pair is memorised; A_(m)=A_(i) and T_(m)=T_(i), replacing the existing values of A_(m) and T_(m). If there are more data pairs (A_(i), T_(i)), step 15 causes the process to repeat the cycle commencing with step 12.

[0116] In the case that Int<IntMin in step 17, the process proceeds to step 24. The greater of A_(i) and the memorised A_(m) is determined. If the current maximum value A_(i), is greater, then this value replaces the existing value of A_(m) and the corresponding time value T_(i) replaces the existing T_(m), thus rejecting the previous memorised data pair in preference for the current pair. The value of the interval between the current and previous valid peak is then calculated as Int_(j)=Int_(j)+Int. The algorithm repeats if there is more data pairs (A_(i), T_(i)), and otherwise proceeds to step 20.

[0117] In step 20, the process involves evaluating whether any interval between two maxima has been determined by evaluating whether j>0. If j is greater than zero, then the median interval (MeInt) is calculated in step 21 and the algorithm ends at step 22. If j=0, then the median interval is set to the length of the sample of the signal and the algorithm ends at step 22.

[0118] Plotted examples of the r suits of the preliminary interval assessment are shown in FIGS. 6-10. An example of a usual case for blood pressure waveforms is presented in FIG. 6. There are 5 maxima above threshold, and one unfinished maximum at the end of the signal, which is not taken into account. The median of four intervals serves as a good estimate of the interval. FIGS. 7 and 8 represent cases where some peaks are below the threshold, but a median value still represents the intervals properly. FIG. 9 represents a case where a big notch is determined as an extra peak, but again the median is a correct measure of interval. FIG. 10 represents a case where a noisy signal causes a large amount of extra peaks to be determined after the first step of detection, but then by rejecting intervals smaller than IntMin, the right assessment of an interval is obtained.

[0119] Referring again to FIG. 1, once the median interval MeInt has been determined, the refractory period (RP) as a fraction of MeInt is calculated. The fraction is chosen from experience and a suitable value has been found to be 0.7, although this may be varied depending on the signal characteristics. This is discussed in more detail herein below in relation to the second embodiment. Next, final detection, represented by the steps within box B may be completed. Final detection includes of the analysis of the original signal by producing two moving averages in step 7. A fast and a slow moving average is calculated, with a shorter and longer averaging time interval respectively. Any appropriate average may be used such as the arithmetic mean or median value for the moving averages.

[0120] Using moving averages provides a means of detection independent of baseline movement as well as allowing for noise in the signal to be ignored. Analysing the moving averages on a point-by-point basis in step 8, the point where the fast moving average F of the original signal 103 first becomes smaller than the slow moving average S (see FIG. 11) is determined as an after peak crossing point (APCP). Each detection of an APCP is indicated by a spike in plot 600. A maxima, which is the maximum value between two successive APCP, is determined as valid only if the last APCP comes after a predetermined refractory period (RP) since the previous APCP has elapsed. The onset of the RP is indicated by the raised portion of plot 700. FIG. 11 shows an example of detection with some maxima between APCP being rejecting as occurring within the RP.

[0121] Throughout the remainder of this description, the term refractory period or RP will be used in specific reference to the analysis of blood pressure signals. However, persons skilled in the art will immediately recognise that any suitable exclusion period may be applied to other signals in a like manner as the refractory period is applied to blood pressure signals.

[0122] A flow diagram showing the process for final maxima detection in detail is given in FIG. 12.

[0123] The process starts at step 26, the original signal has been observed in step 1 (see FIG. 1) to produce a data set of amplitude values X and times T associated with the values X, producing a set of data pairs (X,T). The refractory period RP, fast moving average F, and slow moving average S, are also calculated for use as input variables to the final detection process. A loop counter i is set to i=0.

[0124] In step 27, a loop counter i′ is incremented and a data pair (X_(i), T_(i)) is taken for analysis. If the current value of X_(i) is greater than a stored maximum RunMax (initially null, zero or other appropriate value) of previous values X, then the current value X_(i) is stored as RunMax, thus keeping a monitor of the maximum value. Step 30 involves monitoring the values of F and S, with the process cycling through steps 27, 28, optionally 29, 30 and 41 until the fast moving average first becomes less than the slow moving average. Once F becomes less than S, steps 31 and 32 involve computing the time interval between the previous APCP, which has a corresponding time T_(x) (initially zero) with the current APCP, with corresponding time T_(i).

[0125] If the time interval between the successive APCP is greater than the value of RP, the value of RunMax is compared with a value MemMax, which is initially null, zero or other appropriate value. If RunMax is greater than MemMax, then RunMax is a true maximum and is memorised in step 34 and an interval counter j′ is incremented. In step 35, the stored values of MemMax and MemT_(x) are set to zero and T_(x) set to time T_(i). In step 40, RunMax is set to the value of X corresponding to the time T_(i) of the current APCP and the process iterates (step 41) if there is more data to analyse and otherwise ends at step 42.

[0126] If the current APCP falls within the RP, as determined in step 32, the value of RunMax and the time of the previous APCP (the current T_(x)) are memorised, with RunMax stored as MemMax and T_(x) stored as MemT_(x). If there is more data, the process iterates through steps 27-30 as described herein above until the next APCP. If there are two APCP within RP, the later one only is memorised.

[0127] At the next APCP, if the corresponding time is outside the RP, the valu of the last maximum prior to the current APCP and after the previous APCP is compared with the value of MemMax. MemMax≠0 if a previous maximum was within the RP. If RunMax<MemMax, or alternatively if MemMax is within a certain predetermined percentage, say 90% of Runmax, then the maximum associated with MemMax is determined as a true peak and is memorised together with its corresponding time value T_(x), which was stored as MemT_(x). The interval counter j′ is incremented, RP recalculated based on the APCP associated with MemMax, the current value of RunMax is memorised as MemMax for comparison with the next maximum and MemT_(x) is memorised as T_(x), as this is now the time of the last valid maximum.

[0128] It is now possible to evaluate whether the current maximum is within the RP of the previous maximum, which has just been determined in step 36 to be a true or valid maximum. If it is outside the RP, then the current maximum, which has been stored as MemMax in step 36 is also a true maximum and thus is memorised, the interval counter incremented, MemMax and MemT_(x), reset to zero and T_(x) set to the time corresponding to the current peak, T_(i) (see steps 38 and 35). If the current maximum is within the RP, the value is stored as RunMax, waiting the next peak after which time the process repeats.

[0129] Thus, if the frequency of the waveform being monitored increases, it becomes more likely that a maximum will fall within the RP associated with a previous APCP and corresponding maximum. However, when the next sample of signals is analysed, the MeInt will shorten and thus the RP will be shortened further if required.

[0130] The foregoing description has been given in relation to blood pressure waveforms. However, as stated previously, the present invention may find application to many different waveforms. Due to the characteristics of the blood pressure waveform, a secondary local maxima, for example a pulse wave reflection or dichrotic notch tends to follow the primary local maximum (the systolic peak) of the waveform. As this second maxima does not indicate a new heart beat, it must be disregarded. Therefore, an exclusion period, referred to as a refractory period (RP) in specific reference to blood pressure signals is located in time directly following the after peak crossing point. This location helps ensure that the second maxima falls within the refractory period. Alternatively, the RP may be located in time preceding a systolic peak with substantially the same effect.

[0131] For other waveforms, the location of an expected secondary local maximum in each period may be different. For xample, in a system where reflections of the signal cause a secondary maximum to occur closer to the next primary maximum, the exclusion period may be defined relative to the next primary maximum. The exclusion period associated with an APCP may be in an entirely different period, for example if the reflected wave does not reach the observation point until after one or more periods of the waveform have elapsed. If the exclusion period is located remote from the APCP between two times t1 and t2 defined relative to the APCP, step 32 in FIG. 12 still tests whether an APCP falls within this period, but the test would be: t1<T_(i)<t2?

[0132] The approach according to a second preferred embodiment of the invention also involves stages of observation, filtering, preliminary detection and parameterisation, and final detection. However, the preliminary detection and parameterisation stage is accomplished using a different method and the signal is band-pass filtered prior to preliminary detection, rather than high pass filtered. Further, the final detection process is different, involving two refractory periods and utilising a different measurement period. A flow diagram of the overall process according to the second embodiment is shown in FIG. 13 and the following description highlights the differences between the second and first embodiments.

[0133] After the blood pressure waveform to be analysed has been observed in step 50 using a suitable sensor, it is band-pass filtered in step 51 in order to eliminate baseline movement and high frequency noise. A third order Bessel high-pass filter having a 0.5 Hz cut off and a third order Bessel low-pass filter having a 15 Hz cut off frequency has been found suitable for a blood pressure waveform from a rabbit. Generally, a low pass filter with a minimum cut-off frequency of approximately 0.1 Hz is preferable to obtain a signal reasonably centred around zero and a high cut off frequency sufficiently low to smooth most of the irrelevant waveform noise, but high enough not to distort the proportions of the waveform. The lower boundary for the high cut off may be chosen above the highest frequency of the oscillations which are expected to be possible. For example, for a rabbit this would be expected to be approximately 10 Hz (600 beats per minute). However, the selected cut off frequencies are not critical for the detection. It has been found that the algorithm is quite stable under a wide range of the parameters.

[0134] Preliminary interval detection is then performed on the filtered signal in steps 52-56 and is performed in three parts. These three parts include the steps contained within box C in FIG. 13.

[0135] During the first part, id ntification of the bigger vertical fall side of the maxima is performed in steps 52 and 53. Clusters of data associated with absolute maxima in th areas above the zero-line of the filtered signal are identified in step 52. In FIG. 14, which shows a plot of an original signal 104 and filtered signal 204, the absolute maxima (AbsMax), which are taken into account are shown by circles ◯ in the filtered signal 204. The local maximum * in the area above zero-line and the maximum in the area below zero-line are shown. These are disregarded. For each □ AbsMax, the nearest left and right local minimum (LocMinleft and LocMinright), nearest the left and right absolute minimum in areas below zero-line (AbsMinleft and AbsMinright) are determined, and the left vertical fall (VFleft) and right vertical falls (VFright) are calculated by formulae (3, 4):

VF _(left) =AbsMax−LocMin_(left)  (3)

VF _(right) =AbsMax−LocMin_(right)  (4)

[0136] An example of the determination of an AbsMax 205, LocMinleft 206 and LocMinright 207, AbsMinleft 208 and AbsMinright 209, and VFleft 210 and Vfright 211 calculation is shown in FIG. 15. The LocMinleft 206 and AbsMinleft 208 coincide in the waveform shown in FIG. 15. In step 53, an example of an implementation of which is shown in FIG. 16, 50% of the biggest by AbsMax maxima are selected from the sample, with the others, marked with a # in FIG. 16 rejected. From the selected largest maxima, the next selection is performed—only peaks, which have at least one of the absolute minima not the same as its local minimum are selected. Thus, only the first maxima, marked with a ◯ is retained, the maxima marked with an X rejected. The aim of this selection is choosing peaks with a definite notch. If no such peaks is determined yet, any peak is used. The maximum marked with an @ is considered with the next sample. The VFleft and VFright of the waveform in FIG. 16 are referenced by 212 and 213 respectively.

[0137] Next, the fall difference (FD) is calculated for each peak using equation 5:

FD=VF _(left) −VF _(right)  (5)

[0138] The side of the bigger vertical fall is redetected after each sample by the sum of a predetermined number of previous selected peak fall differences. The use of approximately fourteen previous fall differences has been found suitable for the purposes of this invention, although other numbers may be used. If the FD is positive the side of bigger fall is the left, if negative the right.

[0139] During the second part, which includes steps 54 and 55, all maxima in a sample are compared by the value of the bigger vertical fall. For this purpose the clusters of data associated with all local maxima are identified. Local maxima (LocMax) of the sample of the filtered signal 214 are shown in FIGS. 17 and 18 as circles ◯. For each local maximum, the nearest left local minimum 215 and nearest right local minimum 216 are determined (see FIG. 18). Also, the left and right vertical falls, referenced 217 and 218 respectively, are calculated. The vertical falls of the bigger side (determined at the previous step) are taken for the selection of maxima in the filtered signal for use. The selected maxima are those which have a vertical fall within a predetermined percentage of the maximal fall in the sample. A selection criterion of 35% of the maximal fall in the sample has been found suitable, although this may be varied depending on the characteristics of the signal. The use of the bigger side for selection puts the notch in a disadvantage against the true peak, because the bigger side for the true peak is the smaller side of the notch.

[0140] During the third part, which includes step 56 in FIG. 13, an array of Refractory Period (RP) values is formed. The time intervals between successive selected maxima in step 55 are determined. An interval estimate is then calculated after each determined interval and that value is retained until the next interval is determined. To calculate the value of the Interval Estimate at a specific time, an average of a predetermined number of prior intervals is taken. For example, the Interval Estimate may be the third lowest term in an ordered sequence by magnitude of the last seven intervals. Other averages may be used, for example the median value or the arithmetic mean.

[0141] In parallel to the interval estimate (IE) an array of refractory period (RP) values, calculated as a fraction of IE is determined. A fraction equal to 0.7 and RP limited to a minimum value of 100 ms, which is a conservative assessment of the minimal interval possible for rabbit (related to the heart rate of 600 beat per minute) were used. These values may be varied depending on the expected signal characteristics. In some cases, where there is a large, random variation in the intervals between maxima and maxima amplitude, a lower fraction of IE for the calculation of RP is used, for example 0.4. An example of such a signal is shown in FIG. 20G. The fraction is chosen based on experience.

[0142] An example of the calculation of RP in relation to a filtered signal 219 is shown graphically in FIG. 19. The local maxima selected in step 55 are marked with a circle ◯ and the rejected local maxima marked with a cross X in FIG. 19A. The value of the vertical falls is shown by a spike at the moment in time of the right local minimum in FIG. 19B. The threshold for detection is indicated by the dashed line in FIG. 19B.

[0143]FIG. 19C shows a plot of the interval estimate over time and FIG. 19D shows the corresponding RP. The actual intervals between selected peaks are shown at the top of FIG. 19. As described herein above, only maxima with a vertical fall greater than the threshold are used for the calculation of the interval estimate and refractory period.

[0144] FIGS. 21-26 show graphical examples of the RP array calculations for various signals. FIG. 21 represents the case where a big notch in original signal is ignored because of the use of the bigger vertical side, see arrows N1. FIG. 22 shows the case where two big notches are not rejected and so four small intervals in row were determined, see arrows N2, which sharply reduced IE. But as RP is limited from below by 100 ms, it prevents a dramatic drop in RP, see the portion of the IE and RP plots marked with arrows N3. FIG. 23 shows the case where two big notches are not rejected by the threshold criterion, see arrows N4, but Interval Estimate ignores an appearance of two short (wrong) intervals because IE is calculated as the third lowest term in the last seven intervals ranked by magnitude, and thus RP is adequately calculated, see arrows N5. Other terms, such as the median may be used. FIG. 24 shows how periodically occurring, unusually big intervals, see arrows N6, are ignored for Interval Estimate and RP is calculated adequately, see arrows N7. FIG. 25 demonstrates how an increase in interval between maxima is followed by an increase in RP. In FIG. 26 the change in RP is following the change in an interval between maxima despite of the change in maxima amplitudes and fluctuating baseline.

[0145] Final detection includes the steps within box D of FIG. 13 and like the first embodiment includes the analysis of the original signal by means of producing two moving averages, a fast and slow moving average with shorter and longer averaging time interval. A 40 ms and 100 ms averaging time interval has been found suitable for the examples herein. The pilot value for the slow moving average might again be the shortest interval between signal peaks (100 ms for 600 beat per mean in rabbit), and the fast averaging interval 2-3 times shorter. The point where fast (F) moving average becomes bigger, than slow (S) moving average is determined as a before peak intersection (BPI) of the moving averages. The point where fast moving average becomes smaller, than slow moving average is determined as an after peak intersection (API) of the moving averages.

[0146] The API is equivalent to the APCP of the first embodiment, the change in terminology simply included to clarify the two alternative embodiments. The real peak is determined as the maximum value between successive crossing points BPI and API, if the last API comes after RP since previous API has elapsed, or the last maximum comes after the RP has elapsed since previous real peak maximum. FIG. 27 shows a typical detection situation with: an original signal 104; slow moving average S1; fast moving average F1; BPI, marked with a solid circle; API, marked with a hollow circle; and some peaks marked with a square determined.

[0147] It will be appreciated by those skilled in the art that the RP could be defined relative to the BPI rather than the API if required. Alternatively, the RP could be defined relative to both the BPI and API, for example at a predetermined location in time from the midpoint between the BPI and API. The important factor in locating the RP is to locate the RP where it is anticipated that false readings are probable or possible. In the case of a blood pressure waveform, this is the area following the notch, which occurs sometime close after a true or valid maximum.

[0148] The use of the API or BPI (or APCP in the first embodiment) is to define a fixed measurement period, or sample of the signal for analysis. In a further alternative form, the system may use the intersection of the original signal with a moving average to define intersections or crossing points suitable for defining a measurement period. Other suitable methods of defining measurement periods will be apparent to those skilled in the art.

[0149]FIG. 28 shows a flow diagram of the final peak detection process according to the second embodiment of the invention. Step 60 includes the input of the data pairs (X,T) showing the variation over time of the amplitude of the waveform, the array of RP values from step 56 (see FIG. 13) and the result of a computation of a fast moving average, F1 and a slow moving average S1. A loop counter, i is set to i=0.

[0150] In step 61, a data pair (X_(i), T_(i)) is taken and the loop counter incremented. The process involves monitoring the values of F1 and S1 in step 62 to indicate a BPI. After detection of a BPI and between detection of a BPI and API, the maximum of the observed signal is monitored and recorded as (RunA_(max), RunT_(max),) in steps 64 and 65.

[0151] If a BPI is detected, the values of RunA_(max) and RunT_(max) are replaced by the values of (X, T) at the time of the BPI in step 63. Provided there is more data (X_(i), T_(i)), then the next data pair is taken. The maximum after the BPI is then monitored in steps 64 and 65 until the next API (the process cycles though steps 66, 70, 61 and 62 if there is a local minimum after the BPI prior to the next API). Once the next API is detected in step 66, the process proceeds to step 67.

[0152] In step 67, the values of the time of the previous API, RunT_(prev-x) and time of the previous maximum, RunT_(prev-max), which is associated with the previous API is taken. The time difference between the current API and previous API and between the current and; previous maximum is computed and; compared to the value of RP in step 68. If neither time difference is greater than RP, then the process proceeds to step 69, where the current running, values are passed to memory. Provided there is more data, the process iterates back to step 61.

[0153] If either time difference computed in step 68 is greater than RP, in step 71 the value of the current maximum is compared with the memorised maximum which occurred within the RP, if any. If the current maximum is greater than the memorised maximum, the current maximum, which was stored as RunA_(max) and RunT_(max) in step 65, is identified as a valid maximum. An interval counter j is incremented, the values of the memorised maximums set to zero and the value and time of the identified maximum is stored as the value of the previous maximum for use in analysing the next maximum. This process is shown in FIG. 28 as steps 72 and 77. The process then iterates if there is more data (see step 70).

[0154] If in step 71 the value of the maximum held in memory is greater than the current maximum, the process proceeds to step 73 and the maximum held in memory is determined as a true maximum. The process then evaluates whether the current maximum is a true maximum by establishing whether it falls within the RP of the memorised maximum which has just been determined to be a true maximum in step 73. Thus, if the time difference between the API of the current maximum and the API of the memorised maximum or the time difference between the current maximum and previous maximum is greater than RP, then the current maximum is determined to also be a true maximum, see steps 74 and 75.

[0155] If the current maximum falls within the RP of the memorised maximum, then the memorised maximum becomes the previous maximum, with the times of the maximum and API corresponding to the maximum stored as RunT_(prev-max) and RunT_(prev-x) respectively, see steps 74 and 76. Next, in step 69, the current maximum is stored as the memorised maximum for comparison with the next maximum and associated API.

[0156] At the end of the data input, the process ends at step 78.

[0157] The second embodiment may be preferred in many applications due to possible advantages in accuracy. The use of RP for two, instead of one characteristic point of the waveform may provide more stability to the algorithm. This occurs because in some cases intervals between intersections of moving averages are irregular, for example in the waveforms as shown in FIGS. 29 and 30. In this case, intersection 600 is taken into account, but intersection 601, is ignored because It came within the RP and the interval between the API corresponding to maximum 601 was within the RP from the API corresponding to maximum 600 and the maximum associated with API 601 was within the RP corresponding to the maximum associated with API 600. Also, in some cases the position of the peak maximum is irregular (see example in FIG. 31).

[0158] The algorithm in the second embodiment is not searching for the maximum between successive API, but in more narrow fashion between BPI and API. Therefore, if a baseline is fluctuating considerably, it may happen that a previous API will be higher than a current maximum, which may result in a false detection in the first embodiment.

[0159] The algorithm in the second embodiment is comparing the peak rejecfed as appeared within RP, with a peak lying outside the RP, and if the former is bigger it is taken as a true peak. This approach helps prevent the algorithm to be occasionally trapped in constantly detecting regularly spaced big notches while rejecting the true peaks lying within RP of notches.

[0160] For input signals that have markedly different wavelengths, variations may be made to algorithm to accommodate the different signals. In the second embodiment, calculation of the fast and slow moving averages may be changed depending of the wavelength. The averages may be made proportional to the interval estimate (IE) to allow automatic recalculation of the averaging intervals.

[0161] In addition, the upper an lower limit of the refractory period (RP) may be adjusted to suit a higher or lower expected wavelength. The pass-band of the filters may require adjustment. In the second embodiment, the sample size when determining the larger fall side may need to be increased for signals of larger wavelength. As the wavelength/heat rate is generally approximately known prior to measurement, these changes may be done manually. However, if required an algorithm may be developed to allow automatic calibration of the system.

[0162] After the location in time and amplitude of peaks in the original signal have been determined using the above described process, other parameters may be detected between peaks, such as the troughs of the signal, as well as the peaks and the troughs of the first derivative of the signal if required. Also, the frequency of the periodic signal follows immediately as the inverse of the interval between valid maxima.

[0163] The method may be implemented as an algorithm written in LabVIEW™ graphical programming language (National Instruments™, Austin, Tex., USA). The algorithm may also be implemented using other programming languages or may alternatively be implemented in a dedicated hardware system or a hybrid of a software and hardware implementation.

[0164] Where in the foregoing description, reference has been made to specific components or integers of the invention having known equivalents then such equivalents are herein incorporated as if individually set forth.

[0165] Although this invention has been described by way of example and with reference to possible embodiments thereof, it is to be understood that modifications or improvements may be made thereto without departing from the scope of the invention as defined in the appended claims. 

What is claimed is:
 1. A method of determining the location in time of maxima and/or minima of an oscillatory signal, the method including the steps of: i) observing the amplitude of the oscillatory signal over a predefined measurement period and identifying local maxima or minima that have a preselected measure indicative of the size of the maxima or minima, which exceeds a certain threshold; ii) computing an average interval between local maxima or minima identified in step i); iii) computing the duration of one or more exclusion periods dependent on said average interval; iv) determining a location in time of the one or more exclusion periods based on the observed signal; v) detecting local maxima or minima in the observed signal and rejecting a maximum or minimum if a maximum or minimum is located in time within an exclusion period.
 2. The method of claim 1, wherein said certain threshold is calculated as a predetermined proportion of said preselected measure of the local maximum or minimum that has the greatest size according to said preselected measure.
 3. The method of claim 1 or claim 2, wherein said preselected measure indicative of the size of the maxima or minima is either the amplitude of the maxima or minima, or the magnitude of the fall or rise to an adjacent minimum or maximum respectively.
 4. The method of any one of claims 1 to 3, wherein the duration of the one or more exclusion periods is a predetermined percentage or proportion of said average interval.
 5. The method of any one of claims 1 to 4, wherein the location in time of an exclusion period is dependent on the location in time of a crossing point between two moving averages having different averaging intervals.
 6. The method of any one of claims 1 to 5, wherein the location in time of an exclusion period is dependent on the location in time of a previously calculated maximum or minimum.
 7. The method of claim 5, wherein the averaging interval of each moving average is updat d dependent on said average interval.
 8. A method of determining the location in time of periodic maxima and/or minima of an oscillatory signal, the method including the steps of: a) observing the oscillatory signal by detecting the amplitude of the oscillatory signal; b) computing a first and a second moving average of the oscillatory signal, the first moving average having a first averaging time interval and the second moving average having a second averaging time interval longer than the first averaging time interval; c) determining the location in time of a plurality of crossing points, wherein a crossing point is a point of intersection between the first and second moving averages; d) defining at least one measurement period as the interval between two crossing points; and e) determining the location in time of an absolute maximum or minimum of the oscillatory signal within the or each measurement period, thereby determining the location in time of each periodic maxima or minima respectively of the oscillatory signal.
 9. The method of claim 8, wherein a crossing point is defined as a first type if the first moving average was less than the second moving average prior to the crossing point and defined as a second type if the first moving average was greater than the second moving average prior to the crossing point and wherein the measurement period is defined as the interval between two consecutive crossing points of the same type.
 10. The method of claim 8, wherein a crossing point is defined as a first type if the first moving average was less than the second moving average prior to the crossing point and defined as a second type if the first moving average was greater than the second moving average prior to the crossing point and wherein the measurement period is defined as the interval between two consecutive crossing points of a different type.
 11. The method of any one of claims 8 to 10, further including the steps of: f) defining an exclusion period located in time relative to at least one of each crossing point defining each measurement period; g) evaluating whether a crossing point defining a first measurement period falls within an exclusion period corresponding to a crossing point defining a second measurement period; and h) if the crossing point defining the first measurement period falls within the exclusion period corresponding to the crossing point defining the second measurement period, evaluating whether that crossing point or the crossing point corresponding to the exclusion period within which it is located in time satisfies a first predetermined set of criteria and rejecting the crossing point for the purposes of defining a measurement period if said criteria are met.
 12. The method of claim 11, wherein if a crossing point is rejected, the method further includes also rejecting the exclusion period associated with the rejected crossing point.
 13. The method of claim 11 or claim 12, further including the steps of: i) detecting the location in time of a plurality of local maxima or minima within the oscillatory signal that exceed a predetermined amplitude threshold; and j) computing the length of the exclusion period in time dependent on an average value of the separation in time of detected maxima or minima that exceed said predetermined amplitude threshold.
 14. The method of claim 13, further including rejecting a local maximum detected in step i) for the purposes of step j) if the local maximum falls within a predetermined time period of a local maximum having a greater value.
 15. The method of claim 13, further including rejecting a local minimum detected in step i) for the purposes of step j) if the local minimum falls within a predetermined time period of a local minimum having a lesser value.
 16. The method of any one of claims 13 to 15, wherein said average value of the separation in time of detected maxima or minima is the median value.
 17. The method of any one of claims 13 to 16, further including band-pass filtering the observed signal prior to performing step i).
 18. The method of any one of claims 13 to 17, wherein the predetermined amplitude threshold is computed using the equation: Thr=(Max_(F)−Avg_(F))·ƒ₁+Avg_(F) if maxima is determined in step e) and using the equation Thr=(Min_(F)−Avg_(F))·ƒ₁+Avg_(F) if minima is determined in step e), wherein Thr is the predetermined threshold, Avg_(F) is an average of the observed signal, Max_(F) is the maximum of the observed signal, Min_(F) is the minimum of the observed signal, and f₁, is a preset fraction dependent on the characteristics of the signal and wherein Avg_(F), Max_(F), and Min_(F) are determined from a sample of the observed signal.
 19. The method of any one of claims 11 to 18, wherein step f) includes locating the exclusion period immediately adjacent to the crossing point, after the crossing point.
 20. The method of any one of claims 8 to 19, further including comparing an average value of the observed signal over a sample period with the maximum and minimum values over the same sample period and inverting the signal if required so that the maximum or minimum determined in step e) has a greater variation from the average than the minimum or maximum respectively.
 21. The method of claim 20, wherein the reflected or inverted signal is computed as double an average of the observed signal less the value of the observed signal.
 22. The method of any one of claims 8 to 21, further including: defining an exclusion period located in time relative to a detected maximum or minimum within each measurement period; and evaluating whether a detected maximum or minimum of a first measurement period falls within an exclusion period corresponding to a maximum or minimum of a second measurement period; and if the maximum or minimum of the first measurement period falls within the exclusion period of the second measurement period, evaluating whether the crossing point corresponding to the maximum or minimum of the first measurement period or the crossing point corresponding to the exclusion period within which the maximum or minimum of the first measurement period falls satisfies a predetermined set of criteria and rejecting a crossing point for the purposes of defining a measurement period if said criteria are met.
 23. The method of claim 11 or claim 22, wherein the set of predetermined criteria is based on the relative magnitude of a maximum or minimum in an exclusion period to the magnitude of at least one maximum or minimum respectively in the observed signal.
 24. The method of claim 23 when dependent on claim 22, wherein a crossing point is rejected if the amplitude of a maximum within the measurement period defined by that crossing point is less than an adjacent maximum or less than a predetermined percentage of an adjacent maximum.
 25. The method of claim 23 when dependent on claim 22, wherein a crossing point is rejected if the amplitude of the corresponding minimum to the crossing point located within the exclusion period is greater than an adjacent minimum or greater than a percentage of an adjacent minimum.
 26. The method of any one of claims 22 to 25 when dependent on claim 11, wherein a crossing point is rejected only if it is within an exclusion period corresponding to another crossing point and the maximum or minimum corresponding to the crossing point is within an exclusion period corresponding to another maximum or minimum.
 27. The method of any one of claims 8 to 26, further including the step of recording the maximum or minimum value of the oscillatory signal in each measurement period.
 28. The method of claim 1 wherein step of identifying local maxima or minima that have a preselected measure indicative of the size of the maxima or minima includes: determining whether the left or right side of one or more selected maxima or minima has a larger fall or rise respectively and memorising which side has the greater fall and rise and the magnitude of the largest fall or rise within a sample of the oscillatory signal; and rejecting maxima or minima if the fall or rise respectively is less than a predetermined proportion of the magnitude of the largest fall or rise.
 29. The method of any one of the preceding claims when used to detect maxima or minima of a signal representative of pulsatile blood pressure in an animal.
 30. The method of claim 29 further including determining a measure of the heart rate from detected maxima or minima of the signal representative of pulsatile blood pressure.
 31. Apparatus for determining the location in time of maxima and/or minima of an oscillatory waveform including sensing means to sense an oscillatory waveform and generate an oscillatory signal representative of an oscillatory waveform and a computer processing means in communication with the sensing means and having an instruction set to cause said computer processing means to perform the method as defined in any one of claims 2 to 7 or 9 to
 31. 32. Apparatus for determining the location in time of maxima and/or minima of an oscillatory waveform, the apparatus including sensing means to sense an oscillatory waveform and generate an oscillatory signal representative of an oscillatory waveform and a computer processing means in communication with the sensing means and having an instruction set to cause said computer processing means to: i) identify local maxima or minima that have a preselected measure indicative of the size of the maxima or minima, which exceeds a certain threshold; ii) compute an average interval between local maxima or minima identified in step i); iii) compute the duration of one or more exclusion periods dependent on said average interval; iv) compute a location in time of the one or more exclusion periods based on the observed signal; v) identify local maxima or minima in the observed signal and record identified maxima or minima except any maximum or minimum that is located in time within an exclusion period.
 33. Apparatus for determining the location in time of maxima and/or minima of an oscillatory waveform, the apparatus including sensing means to sense an oscillatory waveform and generate an oscillatory signal representative of an oscillatory waveform and a computer processing means in communication with the sensing means and having an instruction set to cause said computer processing means to: e) compute a first and a second moving average of the oscillatory signal, the first moving average having a first averaging time interval and the second moving average having a second averaging time interval longer than the first averaging time interval; f) compute the location in time of a plurality of crossing points, wherein a crossing point is a point of intersection between the first and second moving averages; g) define at least one measurement period as the interval between two crossing points; and h) compute the location in time of an absolute maximum or minimum of the oscillatory signal within the or each measurement period, thereby determining the location in time of each periodic maxima or minima respectively of the oscillatory signal.
 34. A method of determining the frequency or wavelength of an oscillatory signal including determining the location in time of maxima and/or minima of the oscillatory signal by the method according to any one of claims 1 to 30, calculating the difference in time between maxima and/or minima and using said difference in time to calculate the frequency and/or wavelength of the signal.
 35. A method of any one of claims 1 to 30 or claim 34 when performed in real-time.
 36. A method of detecting maxima and/or minima in an oscillatory signal substantially as herein described and with reference to FIGS. 1 to 12 or FIGS. 13 to
 31. 37. Apparatus for detecting maxima and/or minima in an oscillatory signal substantially as herein described and with reference to FIGS. 1 to 12 or FIGS. 13 to
 31. 